Fix label accessibility
authorMatthias Clasen <mclasen@redhat.com>
Tue, 21 Apr 2020 03:14:25 +0000 (23:14 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 21 Apr 2020 03:16:23 +0000 (23:16 -0400)
Emit accessible change signals after setting the
new selection limits. This was broken in
commit f6bedd0d5e4c8f7b, and showed up as broken
accessibility tests.

gtk/gtklabel.c

index 6d2023ac602084aaf78dd37ce7fb03f33c583172..dda9b0d55896d3a94b46cc49efb4c0226ad1a293 100644 (file)
@@ -4536,6 +4536,8 @@ gtk_label_select_region_index (GtkLabel *self,
                                gint      end_index)
 {
   g_return_if_fail (GTK_IS_LABEL (self));
+  gboolean anchor_changed;
+  gboolean bound_changed;
 
   if (self->select_info && self->select_info->selectable)
     {
@@ -4601,14 +4603,17 @@ gtk_label_select_region_index (GtkLabel *self,
 
       g_object_freeze_notify (G_OBJECT (self));
 
-      if (self->select_info->selection_anchor != anchor_index)
-        _gtk_label_accessible_selection_bound_changed (self);
-      if (self->select_info->selection_end != end_index)
-        _gtk_label_accessible_cursor_position_changed (self);
+      anchor_changed = self->select_info->selection_anchor != anchor_index;
+      bound_changed = self->select_info->selection_end != end_index;
 
       self->select_info->selection_anchor = anchor_index;
       self->select_info->selection_end = end_index;
 
+      if (anchor_changed)
+        _gtk_label_accessible_selection_bound_changed (self);
+      if (bound_changed)
+        _gtk_label_accessible_cursor_position_changed (self);
+
       clipboard = gtk_widget_get_primary_clipboard (GTK_WIDGET (self));
 
       if (anchor_index != end_index)